﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Crosland.Automotriz.Logic;
using System.IO;
using System.Data;

namespace Crosland.Automotriz.Web.SSIS
{
	public partial class wFrmCargarCompensaciones : BaseForm
	{
		//private static String RutaExcel = "";
		EjecutarJobsLogic jobExec = new EjecutarJobsLogic();

		protected override void Inicializar()
		{
			TablaExcel_Cargados();
			DataTable dt = new DataTable();
			dt = (DataTable)Session["ArchivosExcel"];
			if (dt.Rows.Count == 0)
			{
				btnProcesarCom.Enabled = false;
			}
			else
			{
				btnProcesarCom.Enabled = true;
			}

		}

        //protected void Uploader1_FileUploaded(object sender, CuteWebUI.UploaderEventArgs args)
        //{
        //    try
        //    {
        //        string UploadDirectory = Server.MapPath("~/Archivos Excel SSIS/COMPENSACION_SAP_");
        //        string Nombre = args.FileName;
        //        byte[] bytes = Tools.ReadToEnd(args.OpenStream());

        //        File.WriteAllBytes(UploadDirectory + args.FileName, bytes);

        //        popupImportar.ShowOnPageLoad = false;
        //        string scriptOK = "MostrarMensaje();";
        //        lblMensaje.Text = "Excel cargado.";
        //        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptOK, true);
        //    }
        //    catch (Exception ex)
        //    {
        //        popupImportar.ShowOnPageLoad = false;
        //        string scriptOK = "MostrarMensaje();";
        //        lblMensaje.Text = ex.Message;
        //        ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptOK, true);
        //    }
        //}

		protected void TablaExcel_Cargados()
		{
			DataTable dt = new DataTable();

			if (Session["TablaExcelCargados"] == null)
			{
				dt.PrimaryKey = new DataColumn[] { dt.Columns.Add("ID", typeof(string)) };
				dt.Columns.Add("NombreArchivo", System.Type.GetType("System.String"));

				Session["ArchivosExcel"] = dt;

			}
			else
			{
				dt = (DataTable)Session["ArchivosExcel"];

			}

		}

		protected void dgvExcelCargados_RowDeleting(object sender, DevExpress.Web.Data.ASPxDataDeletingEventArgs e)
		{
			DataTable dt = new DataTable();
			dt = (DataTable)Session["ArchivosExcel"];

			int id = Convert.ToInt32(e.Keys["ID"]);

			DataRow[] Fila = dt.Select("ID='" + id.ToString() + "'");

			string NombreArchivo = Fila[0]["NombreArchivo"].ToString();

			if (File.Exists(Server.MapPath("~/Archivos Excel SSIS/" + NombreArchivo)))
			{

				File.Delete(Server.MapPath("~/Archivos Excel SSIS/" + NombreArchivo));

			}

			DataRow row = (dt.Rows.Find(e.Keys["ID"]));
			dt.Rows.Remove(row);
			e.Cancel = true;

			ReenumerarItem(dt);

			Session["ArchivosExcel"] = dt;

			if (dt.Rows.Count == 0)
			{
				btnProcesarCom.Enabled = false;
			}
			else
			{
				btnProcesarCom.Enabled = true;
			}

			this.dgvExcelCargados.DataSource = dt;
			this.dgvExcelCargados.DataBind();
		}


		protected void ReenumerarItem(DataTable d)
		{

			for (int x = 0; x <= d.Rows.Count - 1; x++)
			{
				d.Rows[x].BeginEdit();
				d.Rows[x][0] = x + 1;
				d.Rows[x].EndEdit();
			}

		}

		protected void btnProcesarCom_Click(object sender, EventArgs e)
		{
			string job = "Cargar_Compensaciones_SAP";
			string status = jobExec.StartSqlJob(job);
			lblStatus.Text = status;

			rpExcelCargados.Enabled = false;

			btnImportar.Enabled = false;
			btnProcesarCom.Enabled = false;
			Image1.Visible = true;
			lblStatus.Visible = true;
			Timer1.Enabled = true;
		}

		protected void Timer1_Tick(object sender, EventArgs e)
		{
			int id;
			string msg = string.Empty;

			id = jobExec.StatusJob("Cargar_Compensaciones_SAP");
			msg = jobExec.MsgStatusJob(id);

			lblStatus.Text = msg;

			if (id != 1)
			{
				rpExcelCargados.Enabled = true;
				MostrarExcelCargados();
				btnImportar.Enabled = true;
				btnProcesarCom.Enabled = false;
				Image1.Visible = false;
				lblStatus.Text = msg;
				Timer1.Enabled = false;
			}
		}


		protected void MostrarExcelCargados()
		{
			TablaExcel_Cargados();
			DataTable dt = new DataTable();
			dt = (DataTable)Session["ArchivosExcel"];
			DataRow dr;

			if (dt.Rows.Count > 1)
			{
				for (int x = 0; x < dt.Rows.Count - 1; x++)
				{
					dt.Rows.RemoveAt(x);
				}
			}

			DirectoryInfo dir = new DirectoryInfo(Server.MapPath("~/Archivos Excel SSIS"));

			FileInfo[] files = dir.GetFiles("*.xls", SearchOption.AllDirectories);
			foreach (var fileInfo in files)
			{
				dr = dt.NewRow();
				dr.BeginEdit();
				dr["ID"] = dt.Rows.Count + 1;
				dr["NombreArchivo"] = fileInfo.Name;
				dr.EndEdit();
				dt.Rows.Add(dr);
			}

			Session["ArchivosExcel"] = dt;

			dgvExcelCargados.DataSource = dt;
			dgvExcelCargados.DataBind();


		}

		protected void ASPxButton2_Click(object sender, EventArgs e)
		{
			MostrarExcelCargados();
			DataTable dt = new DataTable();
			dt = (DataTable)Session["ArchivosExcel"];
			if (dt.Rows.Count == 0)
			{
				btnProcesarCom.Enabled = false;
			}
			else
			{
				btnProcesarCom.Enabled = true;
			}
		}

		protected void btnSalir_Click(object sender, EventArgs e)
		{
			Session["ArchivosExcel"] = null;
			Response.Redirect("http://automotriz.crosland.com.pe/Seguridad/wFrmDefault.aspx");
		}

      

        protected void btnDetalle_Click(object sender, EventArgs e)
        {
            popupImportar.ShowOnPageLoad = false;
            string scriptOK = "MostrarMensaje();";
            lblMensaje.Text = "Excel cargado.";
            ScriptManager.RegisterStartupScript(this, typeof(Page), "carga", scriptOK, true);
        }

        protected void ASPxUploadControl1_FileUploadComplete(object sender, DevExpress.Web.ASPxUploadControl.FileUploadCompleteEventArgs e)
        {
            string resultFilePath = "/Archivos Excel SSIS/COMPENSACION_SAP_" + e.UploadedFile.FileName;
            e.UploadedFile.SaveAs(MapPath(resultFilePath));

        }

	}
}